1. Field of the Invention
The present invention relates to the field of printing and in particular, to systems and methods to implement multiple mode color blending for print devices.
2. Description of Related Art
Pixels generated by a color printer typically consist of colors from multiple color planes. For example, in a color printer that uses cyan, magenta, yellow, and black (“CMYK”), a single pixel can include color from one or more of the four color planes. A wide range of colors may be produced by a printer when colors from constituent color planes are combined with differing intensities. Color for image data is typically specified in some color space in a page description language (“PDL”), which may differ from the native color space of the target imaging or printing device.
Several modern page description languages (“PDLs”) allow for blending of colors based on some model of opacity data. In some situations, opacity data may be specified using an alpha channel, and is known as “alpha” data. In general, blending is a convex combination of colors allowing the representation of transparency and/or translucency effects. A convex combination is a linear combination of the colors, where all coefficients are non-negative and add up to 1. For example, when an alpha channel is used, the value of alpha in a color code can range from 0.0 to 1.0, where 0.0 may represent a fully transparent color, while 1.0 may represent a fully opaque color. Alpha values can be used to specify how a set of objects in a PDL, for example, interact with each other to form a final composed object. The result of such blending is typically dependent both on the opacity (alpha) value and on the color space in which the blending is performed. PDLs may allow the specification of the colorspace in which blending is to be performed. For example, in Adobe™ Portable Document Format (“PDF”) PDL, each object group in a print job may be blended in its own color space. Similarly, in Microsoft™ XML Paper Specification (“XPS”) PDL, a user can specify the blending color space for each page. In many situations, such as the PDLs described above, the color spaces utilized for blending may not have any relation to the native color space of the target device on which the job is to be displayed. Therefore, blending operations may involve repeated colorspace conversions.
Typically, flexibility in blending schemes invites color conversion costs, For example, in PDF, a stack of nested PDF groups may have distinct color spaces. As each PDF group is blended into its parent, color space conversion is performed. Color space conversion is also performed when the outermost group, termed the page group, is converted to the color space of the native device. Similarly, in XPS, color space conversion is performed from the blending color space specified for a page to the color space of the native device. Because color conversion can be computationally expensive, the conversions above can constitute a significant portion of the total rasterization time.
In some PDLs, the common color space to be used for blending two objects may be specified. This approach also fails to effectively reduce the total number of color space conversions during the course of the print job. Other approaches, which also depend on using directives in the print job, rely on the analysis of data in the print job or other heuristics to speed up rasterization. Approaches relying on print job directives are not generic enough to be widely applicable and effective.
In a further approach used in Konica-Minolta™ printers C550 and 5570, when blending was specified in an RGB color space for data in a CMYK space, the blending operation was carried out by converting from CMYK to RGB using a canonical conversion algorithm before blending; blending the objects in RGB; and then converting the objects back to CMYK. All other blending operations were performed in the native color space of the printer. This approach reduced the number of conversions when blending was not specified in an RGB space for data in CMYK space. However, for the fairly common case where blending was specified in an RGB color space using data in CMYK space, there was no improvement in speed. In addition, because canonical transformations ignore details of the specific CMYK space involved in the blending, such transformations can also result in a loss of color accuracy. In all other cases (not involving blending in an RGB color space for data in a CMYK space) blending was performed in the native color space of the printer resulting in a loss of color accuracy. Consequently, users of these printers were deprived of both flexibility and color accuracy.
Thus, there is a need for systems and methods that provide multiple mode color blending functionality at a low implementation and computational cost, while permitting preservation of printed color output quality.